Release 3.2  Copyright ã1993 by NeXT Computer, Inc.  All Rights Reserved.

D	Das Programm ªsendmailº 

Aus der Sicht des Benutzers ist der Versand einer Mail-Mitteilung eine einfache Prozedur. Wie Sie jedoch wissen oder vermuten, kann die Zustellung einer Mitteilung an ihren EmpfÙnger eine recht komplizierte Sache sein. Ein wesentlicher Bestandteil des Mail-Systems ist das Dienstprogramm sendmail, ein Leitweglenkungsprogramm för Mail-Mitteilungen. Die Post wird von einem Postversandprogramm auf Benutzerebene, beispielsweise NeXTmail, eingesammelt und an Postweiterleitungs- oder zustellungsprogramme, wie z. B. UUCP, verteilt.

Um sendmail zu verstehen, mössen Sie öber die sendmail-Konfigurationsdateien Bescheid wissen und öber deren Beziehung zur Umgebung, in der sie interpretiert werden (eventuell umfaût diese NetInfo, NIS und DNS). In diesem Anhang erhalten Sie Hintergrundinformationen öber die Funktionsweise von sendmail, ErlÙuterungen zu den Konfigurationsdateien und Beispiele zu DebuglÙufen. Das Dienstprogramm sendmail ist för seine KomplexitÙt bekannt. Dieser Anhang soll Ihnen die Grundlagen vermitteln und ist nicht als komplette Beschreibung gedacht. Im Anhang H, ªFachliteratur-Hinweiseº, finden Sie eine Liste mit Dokumentationen öber sendmail.

Hinweis:  Die Angaben in diesem Anhang, insbesondere die Tabellen, erfolgen in Anlehnung an Eric Allmans ªSendmail Installation and Operation Guideº. Dieser Text ist im UNIX System Manager's Manual, 4.3 Berkeley Software Distribution enthalten. (Einzelheiten hierzu finden Sie in Anhang H).

	Warnung:	Das sendmail-System dient der allgemeinen Postadressierung und -weiterleitung. Diese Aufgaben sind Ùuûerst kompliziert. Modifizieren Sie die vorhandenen Konfigurationsdateien nur, wenn Sie absolut sicher sind, daû dies notwendig ist, und wenn Sie sich die damit verbundene Arbeit zutrauen. Erstellen Sie unbedingt Sicherungskopien der vorhandenen Dateien, falls etwas schief geht.

Hintergrund

Das Programm sendmail erledigt vier Aufgaben:

·	Das Programm bestimmt, wie eine Mitteilung bearbeitet werden soll Ð d. h., wie sie an ein Postversandprogramm weitergeleitet wird.

·	Die Kopfzeile der Mitteilung wird teilweise umgeschrieben, um den Adressen das richtige Format und den richtigen Inhalt zu geben.

·	Das Programm föhrt Alias-Auflðsungen durch (dabei werden Aliase in Benutzernamen umgesetzt) und verarbeitet .forward-Dateien för die lokale Zustellung.

·	Die Post wird mit SMTP weitergeleitet (Simple Mail Transfer Protocol, das  TCP/IP-Netzwerkprotokoll för Postöbertragung).

Beachten Sie, daû sendmail die Post nicht zustellt und auch nicht weiterleitet Ð mit Ausnahme der Mail-Mitteilungen, die öber SMTP weitergeleitet wurden. sendmail benðtigt andere Programme (zum Beispiel /bin/mail oder uux), um Mail-Mitteilungen zuzustellen und weiterzuleiten.

Das Programm sendmail regelt den Postverkehr. Die Mitteilungen werden von den Programmen öbernommen, die Post versenden Ð wie z. B. NeXTmail. Anschlieûend bestimmt sendmail, wie die Mitteilungen weitergeleitet werden sollen und öbergibt sie einem Postweiterleitungs- oder zustellungsmedium. Das Weiterleitungsmedium kann z. B. sendmail auf einem anderen Computer in Verbindung mit SMTP sein oder auch das Programm rmail eines anderen Computers in Verbindung mit UUCP. Als Zustellungsmedium för die lokale Zustellung kann beispielsweise /bin/mail verwendet werden. Die Anweisungen zur Bearbeitung einer bestimmten Mitteilung befinden sich in der sendmail-Konfigurationsdatei.

Konfigurationsdateien

ZusÙtzlich zu den Bearbeitungsanweisungen för eine bestimmte Mail-Mitteilung enthÙlt die Konfigurationsdatei auch spezifische Informationen öber das Netzwerk, auf dem sendmail ausgeföhrt wird. Jeder Computer kann zwar seine eigene Konfigurationsdatei haben, im Normalfall sind die Konfigurationsdateien der meisten Computer eines bestimmten Netzwerkes aber identisch. In der Regel unterscheidet sich die Konfigurationsdatei des Mail-Servers von denen der Mail-Clients. Die Dateien der Clients sind jedoch identisch.

Die voreingestellte sendmail-Konfigurationsdatei ist /etc/sendmail/sendmail.cf. Dies kðnnte ein symbolischer Verweis auf eine andere Datei in /etc/sendmail sein, wie etwa sendmail.mailhost.cf. ZusÙtzlich kann die Lage der Konfigurationsdatei als Wert der Eigenschaft sendmail.cf im NetInfo-Verzeichnis /locations/sendmail in der NetInfo-Datenbank gespeichert werden. Weitere Informationen hierzu finden Sie im Kapitel 6, ªSo verwalten Sie die elektronische Postº.

Hinweis:  Einige Ausföhrungen von sendmail unterstötzen eine ªeingefroreneº Konfigurationsdatei, nÙmlich sendmail.fc. Diese Datei wird von NeXT-Computern nicht unterstötzt. Die Mðglichkeit, solch eine Konfigurationsdatei zu erstellen, wurde entfernt.

Kopfzeilen und UmschlÙge

Mail-Mitteilungen enthalten die Adresse an zwei Stellen: in der Kopfzeile der Mitteilung (beispielsweise in den Zeilen From:, To: und Cc:) und auf dem Umschlag der Mitteilung. Der Umschlag enthÙlt die Röckadresse und alle Zieladressen. Die Mitteilungen werden den Zieladressen zugestellt, die auf dem Umschlag angegeben sind. Die Umschlagadressen sind in der Befehlszeile angegeben. Wenn Sie NeXTmail verwenden, sind diese nicht sichtbar. Einzelheiten hierzu finden Sie weiter hinten in diesem Kapitel unter ªBranchenkniffeº.

Die EmpfÙnger sehen nicht alle Umschlagadressen (das ist der springende Punkt bei einer ªBlindkopieº). Die Umschlagröckadresse finden Sie in den Kopfzeilen From (nicht zu verwechseln mit From:) und Return-Path: der zugestellten Mitteilung.

Die Komponenten der Konfigurationsdatei

Die sendmail-Konfigurationsdatei besteht aus fönf Grundkomponenten. Bedeutung und KomplexitÙt nehmen in der Reihenfolge zu: Optionen, Makros, Klassen, Mail-Programme sowie RegelsÙtze und Umschreibregeln. 

	Warnung:	Die Modifikation der sendmail-Konfigurationsdateien sollten Sie nur als letzte Lðsung erwÙgen. Versuchen Sie erst, eine vorhandene Konfigurationsdatei zu finden, die Ihren Bedörfnissen entspricht (oder einen Satz solcher Dateien). Wenn Sie die sendmail-Konfigurationsdatei modifizieren, sollten Sie erst eine Sicherungskopie anlegen, för den Fall, daû die Modifikationen nicht Ihren Erwartungen entsprechen. Es ist öberaus einfach, Ihr Mail-System mit der miûlungenen Modifikation einer sendmail-Konfigurationsdatei auûer Betrieb zu setzen.

Optionen

Optionen steuern verschiedene einfache Aspekte von sendmail. Sie kðnnen Optionen sowohl in der Konfigurationsdatei als auch in der Befehlszeile setzen, mit der sendmail aufgerufen wird (normalerweise von /etc/rc ausgeföhrt). 

In der Konfigurationsdatei werden Optionen mit der Anweisung O gesetzt. Nachfolgend ein Beispiel:

OT3d

Diese Option legt fest, daû die Post zuröckgesendet wird, die innerhalb von 3 Tagen nicht zugestellt wurde. Andere Optionen steuern diverse Aspekte wie Berechtigungen ("Modus") temporÙrer Dateien, Lagen der Aliase-Dateien und des Spool-Verzeichnisses sowie die SMTP-Zeitöberschreitung. Einzelheiten hierzu finden Sie im UNIX-Handbuch unter sendmail.

Makros

Makros sind einfache Variablen. Manche Makros werden von sendmail selbst bestimmt,
z. B. das aktuelle Datum und der Hostname des Absenders. Andere kðnnen in der sendmail-Konfigurationsdatei definiert werden. Solche Makros kðnnten beispielsweise den Namen eines Computers enthalten, an den die Post gesendet werden soll, die lokal nicht zugestellt werden kann. Makronamen bestehen aus einem einzigen Buchstaben.

Zahlreiche integrierte Makros sind verfögbar. Sie sind alle mit einem Kleinbuchstaben benannt. Normalerweise sind Groûbuchstaben för Makros reserviert, die vom Benutzer definiert wurden.

Makros werden mit der Anweisung D definiert:

DMetherl

In diesem Beispiel wird bestimmt, daû das Makro M die Zeichenfolge etherl enthÙlt.

Klassen

Klassen dienen dazu, gleichartige Elemente zusammenzufassen. Normalerweise  zeigt eine Klasse an, daû eine Gruppe von Hosts oder Hostnamen in der gleichen Weise behandelt werden soll. Alle Computer, die UUCP-Partner sind, kðnnten z. B. in einer Klasse zusammengefaût werden, oder auch alle verschiedenen Namen des aktuellen Computers.

Klassen werden mit den Anweisungen C und F definiert. Mit C listen Sie die Mitglieder der Klasse ausdröcklich auf; mit F werden die Mitglieder aus einer Datei oder von der Standardausgabe eines Befehls geholt. Nachstehend je ein Beispiel:

CR mailhost mail-relay mail-server
FV|/usr/bin/uuname
FA/etc/sysadmins

In der ersten Zeile wird die Klasse R so definiert, daû sie die Zeichenfolgen mailhost, mail-relay und mail-server enthÙlt. Die zweite Zeile definiert die Klasse V so, daû sie die Ausgabe des Befehls /usr/bin/uuname enthÙlt. Im dritten Beispiel wird schlieûlich die Klasse A definiert Ð sie soll den Inhalt der Datei /etc/sysadmins enthalten.

Mail-Programme

Ein Mail-Programm definiert die Programme und Optionen, mit denen Post weitergeleitet oder zugestellt wird. Verschiedene Mail-Programme werden u. a. aus folgenden Grönden verwendet:

·	Die Mitteilungen werden öber unterschiedliche DatentrÙger weitergeleitet, oder es werden verschiedene Protokolle verwendet (z. B. UUCP und SMTP).

·	Verschiedene Optionen (z. B. maximale LÙnge der Mitteilung) werden unter verschiedenen Bedingungen verwendet.

·	Verschiedene Methoden werden verwendet, um die Adressen des Absenders und der EmpfÙnger umzuschreiben.

Mail-Programme kðnnen beliebig benannt werden. Eine Ausnahme bilden drei Mail- Programme, die bei sendmail eine bestimmte Bedeutung haben: local, prog und error.

Mail-Programme werden mit der Anweisung M definiert:

Muucp, P=/usr/bin/uux, F=msDFMhuU, S=13, R=23, E=\n
    A=uux - -r $h!rmail ($u)

In diesem Beispiel wird das Mail-Programm uucp definiert. Nachfolgend eine Aufschlösselung der verschiedenen Komponenten:

·	P (Pfad) Ð Bestimmt das Programm, das aufgerufen werden soll. In diesem Fall ist dies /usr/bin/uux. 

·	F (Flaggen) Ð Bestimmt die Mail-Programm-Flaggen, mit denen sowohl die Einzelheiten der Ausföhrung als auch die Argumente des Programms bestimmt werden, das för dieses Mail-Programm aufgerufen wurde. Eine vollstÙndige Beschreibung finden Sie in der Dokumentation von Eric Allman.

·	S (Sender, Absender) Ð Bestimmt den Regelsatz, mit dem die Absenderadressen der Mitteilungen umgeschrieben werden, die an dieses Mail-Programm gesendet wurden. Weitere Informationen hierzu finden Sie weiter hinten in diesem Kapitel unter ªFluû und Anwendung der RegelsÙtzeº. 

·	R (Recipient, EmpfÙnger) Ð Genau wie S, jedoch för die EmpfÙngeradressen.

·	E (eol) Ð Bestimmt die Zeichenfolge för das Zeilenende (end-of-line, eol). In diesem Fall ist dies \n ( Zeichen för eine neue Zeile).

·	A (argv) Ð Bestimmt den Argumentvektor, der an das Programm gesendet wird. ZunÙchst wird der Programmname wiederholt (hÙufig in verkörzter Form), gefolgt von den Argumenten för das Programm, die Sie in die Befehlszeile eingeben wörden.

Im obigen Beispiel wurde die Option M (maxsize) nicht verwendet. Sie bestimmt die maximal zulÙssige LÙnge einer Mitteilung (in Bytes). Falls diese LÙnge öberschritten wird, kann die Mitteilung nicht zugestellt werden, und der Absender erhÙlt eine Fehlermeldung.

Das Mail-Programm ªlocalº 

Das Mail-Programm local muû in der Konfigurationsdatei definiert werden. Dieses Mail-Programm wird för die Endzustellung einer Mitteilung an Benutzer auf dem lokalen Computer verwendet. Alias-Auflðsungen werden nur bei Mail-Mitteilungen durchgeföhrt, die vom Mail-Programm local verarbeitet werden.

Das Mail-Programm local ruft normalerweise /bin/mail auf. Dieses Programm schreibt eine Kopie der Mitteilung in die Mail-Spool-Datei des Benutzers:

Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u

Das Mail-Programm ªprogº 

Das Mail-Programm prog muû ebenfalls in der Konfigurationsdatei definiert werden. Dieses Mail-Programm wird för die Endzustellung einer Mitteilung verwendet, wenn als EmpfÙngeradresse ein Programm angegeben wurde. Vom folgenden Mail-Alias wird beispielsweise das Programm /usr/local/bin/ambigmail als EmpfÙnger der eingehenden Mitteilung angegeben:

|"/usr/local/bin/ambigmail"

För solche Adressen wird das Mail-Programm prog anstelle des Mail-Programms local aufgerufen. Das Mail-Programm prog ruft normalerweise /bin/sh auf:

Mprog, P=/bin/sh, F=lsDFMeup, S=10, R=20, A=sh -c $u

Das Mail-Programm ªerrorº

Das Mail-Programm error ist in sendmail integriert und sollte nicht in der Konfigurationsdatei definiert werden. Dieses Mail-Programm erstattet Fehlerberichte Ð beispielsweise öber unbekannte lokale Hosts Ð an den Absender und wahrscheinlich auch an postmaster. Dabei handelt es sich um ein Alias för die Benutzer, die för die Mail-Installation zustÙndig sind. Ein Beispiel för die Verwendung des Mail-Programms error finden Sie im nÙchsten Abschnitt.

Fehlermeldungen kðnnen auch von anderen Quellen generiert werden. Wenn das Mail-Programm local beispielsweise feststellt, daû ein Benutzer nicht lokal existiert, wird eine Fehlermeldung generiert. In diesem Fall wird nicht das Mail-Programm error för den Fehlerbericht verwendet. 

RegelsÙtze und Umschreibregeln

Der Groûteil einer sendmail.cf-Datei besteht aus Anweisungen dazu, wie Mail-Adressen interpretiert und modifiziert werden. Diese Anweisungen werden Umschreibregeln genannt und in RegelsÙtzen zusammengefaût. In einem Regelsatz werden verschiedene Regeln zusammengefaût, die eine bestimmte Funktion genau definieren. Ein Regelsatz wandelt Adressen beispielsweise in ein standardmÙûiges (kanonisches) Format um, das von den anderen RegelsÙtzen einfacher interpretiert werden kann. 

RegelsÙtze werden mit einer Zahl benannt und mit der Anweisung S definiert:

S30

Auf einen Regelsatz folgen sofort die Umschreibregeln, aus denen dieser Regelsatz besteht. Umschreibregeln werden mit der Anweisung R definiert:

R$+@$+    $:$1<@$2>    focus on domain

Diese Regel besteht aus drei Komponenten, die durch Tabulatorzeichen voneinander getrennt werden: die linke Seite, die rechte Seite und ein Kommentar. 

Die linke Seite

Das Muster der linken Seite einer Regel kann mit einer Adresse verglichen werden. Es gleicht einem regulÙren Ausdruck, abgesehen davon, daû es Zeichenfolgen oder Wðrter vergleicht Ð also nicht einzelne Zeichen. Folgende Adresse hat z. B. fönf Zeichenfolgen:

amm@Tute.EDU

Die fönf Zeichenfolgen sind amm, @, Tute, ., und EDU.

In der folgenden Tabelle werden die Metasymbole beschrieben, die in der Kombination auf der linken Seite verwendet werden:

Metasymbol	Bedeutung
$*	Null oder mehreren Zeichenfolgen entsprechen.
$+	Einer oder mehreren Zeichenfolgen entsprechen.
$-	Genau einer Zeichenfolge entsprechen.
$=c	Irgendeiner Zeichenfolge der Klasse c entsprechen.
$~c	Irgendeiner Zeichenfolge auûer der Klasse c entsprechen.

Nachfolgend wird das Beispiel der Umschreibregel noch einmal aufgenommen:

R$+@$+      $:$1<@$2>      focus on domain

Die linke Seite dieser Regel entspricht einer oder mehreren Zeichenfolgen ($+), gefolgt von der Zeichenfolge @ und einer oder mehreren anderen Zeichenfolgen ($+).

Die rechte Seite

Auf der rechten Seite einer Regel wird angegeben, was mit einer Adresse geschehen soll, wenn sie der linken Seite der Regel entspricht. In der folgenden Tabelle werden die Metasymbole beschrieben, die auf der rechten Seite einer Umschreibregel verwendet werden:

Metasymbol	Bedeutung
$n	Die Zeichenfolgen ersetzen, die Metasymbol-Nr. n der linken Seite entsprechen.

$[name$]	Den Hostnamen (oder die Hostadresse) name in Standardformat (kanonisch) umwandeln.

$>n	Regelsatz-Nr. n aufrufen.

$#name	Die Adresse för das Mail-Programm name auflðsen.

$@name	Den Host als name angeben.

$:name	Den Benutzer als name angeben.

${m name$}	name in der NIS-Tabelle nachschlagen, die im Makro m angegeben ist.

ZusÙtzlich zu diesen Metasymbolen kðnnen Sie die Wirkung der Regel oder der RegelsÙtze auch mit zwei PrÙfixen modifizieren. Dies wird in folgender Tabelle beschrieben:

PrÙfix	Bedeutung
$:	Diese Regel sofort beenden, mit dem Regelsatz jedoch fortfahren.

$@	Von diesem Regelsatz mit dem Rest der rechten Seite als Resultat des Regelsatzes zuröckkehren.

Nachfolgend noch einmal das Beispiel der Umschreibregel:

R$+@$+      $:$1<@$2>      focus on domain

Die rechte Seite schreibt die Adresse in folgendes Format um:

Zeichenfolge1<@Zeichenfolge2>

Wörde diese Regel auf die Adresse amm@Tute.EDU angewendet, entsprÙche Zeichenfolge1 amm, und Zeichenfolge2 entsprÙche Tute.EDU. Die rechte Seite der Regel wandelt die Adresse folgendermaûen um:

amm<@Tute.EDU>

Der Domainteil der Adresse wird in spitze Klammern (<>) eingeschlossen und ist so för andere Regeln einfacher zu identifizieren. (Dies wird Konzentrierung genannt).

Durch das rechte PrÙfix $: wird die Regel beendet. Dadurch wird vermieden, daû die Regel auf die umgeschriebene Adresse angewendet wird. (Die umgeschriebene Adresse entspricht eventuell immer noch der linken Seite, die sonst verursachen wörde, daû die Regel auf die umgeschriebene Adresse angewendet wird.)

Nachfolgend ein Beispiel för eine Umschreibregel, die das Mail-Programm error aufruft:

R$*<@$*.LOCAL>$*    $#error $:Never heard of host $2 in domain $m

Wenn die linke Seite der Adresse entspricht, wird das Mail-Programm error aufgerufen, um die angegebene Fehlermeldung zuröckzugeben (alles hinter $:). Tabulatorzeichen kðnnen im Text einer Fehlermeldung nicht verwendet werden, da dieses Zeichen die rechte Seite einer Umschreibregel vom Kommentar trennt.

Hinweis:  Das Mail-Programm error sollte nur im Regelsatz 0 aufgerufen werden. (Einzelheiten finden Sie im nÙchsten Abschnitt).

So werden Adressen umgesetzt

Der wichtigste Aspekt der sendmail-Konfigurationsdateien liegt vielleicht darin, wie RegelsÙtze zur Umsetzung einer Mail-Adresse verwendet werden.

Adressensyntax

E-Mail-Adressen haben zahlreiche verschiedene Formate Ð deshalb sind sendmail-Konfigurationsdateien auch so auûerordentlich komplex. 

Im allgemeinen hat eine Mail-Adresse eines der folgenden drei Formate:

·	Einfacher Benutzername oder Alias Ð wie etwa suser, Sandy_User oder ges_Abt.
·	Benutzername oder Alias auf einem anderen Computer Ð wie etwa suser@Rhino.COM.
·	Benutzername oder Alias auf einem anderen Computer, der öber UUCP erreichbar ist Ð wie etwa rhino!suser.

Andere Adressenformate sind mðglich, einschlieûlich kombinierter Formate. In der folgenden Tabelle werden einige Beispiele för Mail-Adressen beschrieben:

Adresse	Interpretation
amm	Lokaler Benutzer oder Alias amm

amm@rhino	amm auf dem Computer rhino in der lokalen Domain

rhino!amm	amm auf dem Computer rhino, öber UUCP erreichbar

amm@rhino.UUCP	amm auf dem Computer rhino, öber UUCP erreichbar

rhino!hippo!conure!amm	amm auf dem Computer conure, öber UUCP und die Computer rhino und hippo erreichbar

amm@Rhino.COM	amm in der Domain Rhino.COM

amm@flyer.Rhino.COM	amm in der Domain flyer.Rhino.COM; normalerweise ist dies der Computer flyer in der Domain Rhino.COM

@Rhino.COM:amm@Tute.EDU	amm in der Domain Tute.EDU, erreichbar öber die Domain Rhino.COM

amm%rhino.UUCP@Tute.EDU	amm auf dem Computer rhino.UUCP, erreichbar öber die Domain Tute.EDU

amm%Rhino.COM@Tute.EDU	amm in der Domain Rhino.COM, erreichbar öber Tute.EDU

Die sendmail-Konfigurationsdatei setzt alle Adressen in konforme, sogenannte Domainformat-Adressen um. Eine einfache Domainformat-Adresse wÙre benutzer@domain, wobei domain der Name eines Computers oder einer Computergruppe ist (z. B. eines Netzwerkes). Wenn domain eine Computergruppe ist, wird ein Computer för die Bearbeitung der eingehenden Post dieser Gruppe bereitgestellt. Das Programm sendmail (oder ein entsprechendes Programm) auf dem Computer, der die Post för domain bearbeitet, interpretiert benutzer.

Die Adresse rhino!suser ist z. B. keine Domainformat-Adresse und wird deshalb in suser@rhino.uucp umgesetzt. In diesem Fall ist rhino.uucp lediglich eine zweckmÙûige Notation, denn es gibt keine Domain uucp und somit auch keine untergeordnete Domain rhino.uucp. Die Umsetzung in eine standardmÙûige, kanonische Domainformat-Adresse wird Kanonisation genannt.

Im allgemeinen werden Mail-Adressen nicht nach Groû- und Kleinschreibung unterschieden: Die Adressen amm@rhino und amm@Rhino sind die gleichen. UUCP-Adressen bilden jedoch eine Ausnahme: amm@rhino.uucp ist nicht dasselbe wie amm@Rhino.uucp.

Fluû und Anwendung der RegelsÙtze

RegelsÙtze werden in einer bestimmten Reihenfolge auf Adressen angewendet. In diesem Abschnitt wird beschrieben, welche RegelsÙtze auf die verschiedenen Adressenarten angewendet werden. Die RegelsÙtze selbst werden im nÙchsten Abschnitt beschrieben.

Die folgende Abbildung zeigt die RegelsÙtze, die wÙhrend der Mail-Programm-Auflðsung verwendet werden Ð mit denen also bestimmt wird, was mit einer Mitteilung geschehen soll, die an eine bestimmte Adresse gesendet wird: 

,

Die Umschlagadresse (die sich von der Adresse in der Mitteilung unterscheiden kann oder eventuell dort auch gar nicht erscheint) wird zunÙchst vom Regelsatz 3 und danach vom Regelsatz 0 verarbeitet. Regelsatz 3 hat die Funktion, die Adresse in ein standardmÙûiges (kanonisches) Format umzusetzen und sendmail auf den Domainteil der Adresse zu ªkonzentrierenº, d. h. in spitze Klammern (<>) zu setzen. Regelsatz 0 bestimmt, was mit der Mitteilung geschehen soll, die an diese Adresse gesendet wird.

Die nÙchste Abbildung zeigt die RegelsÙtze, mit denen die Absenderadresse in der Kopfzeile der Mitteilung (etwa in der Zeile From:) umgeschrieben wird.

,

Regelsatz 3 wird zuerst aufgerufen, gefolgt von einem Prozeû, der Hinzufögen der Absender-Domain genannt wird (falls angegeben). Dadurch wird der Adresse bei Bedarf ein Domainteil hinzugefögt. Anschlieûend wird der Regelsatz 1 aufgerufen, der eine allgemeine Vorverarbeitung der Absenderadresse vornimmt Ð beispielsweise wird ein ªloginº-Name in ein Alias umgesetzt. Danach wird der Regelsatz aufgerufen, der von der Option S der Mail-Programm-Definition angegeben wird. Schlieûlich folgt Regelsatz 4, der eine allgemeine Nachbearbeitung vornimmt Ð u. a. wird die Konzentrierung teilweise röckgÙngig gemacht, die von Regelsatz 3 durchgeföhrt wurde.

Die nÙchste Abbildung zeigt die RegelsÙtze, mit denen EmpfÙngeradressen in der Kopfzeile der Mitteilung (wie etwa in der Zeile To:) umgeschrieben werden.

,

Regelsatz 3 und Regelsatz D sind hier mit dem vorigen Beispiel identisch. Regelsatz 2 föhrt eine allgemeine Verarbeitung der EmpfÙngeradresse durch (hÙufig nicht erforderlich, deshalb ist der Regelsatz 2 oft leer). Danach wird der Regelsatz aufgerufen, der von der Option R der Mail-Programm-Definition bestimmt wird. Schlieûlich folgt Regelsatz 4, der eine allgemeine Nachverarbeitung durchföhrt.

Die folgende Abbildung kombiniert die vorherigen drei Abbildungen und zeigt, wie die verschiedenen RegelsÙtze bei der Verarbeitung einer Adresse verwendet werden. Auf welchem Pfad eine Adresse durch die RegelsÙtze geschleust wird, hÙngt von ihrem Typ ab. Das Diagramm wurde aus dem erwÙhnten Text von Eric Allman öbernommen und erscheint in vielen Dokumentationen öber sendmail.

,

Spezifische RegelsÙtze

Nachfolgend finden Sie eine genaue Beschreibung der verschiedenen RegelsÙtze, die im vorherigen Abschnitt erwÙhnt wurden.

Regelsatz 3 Ð Kanonisch umsetzen und konzentrieren

Regelsatz 3 setzt eine Adresse in ein standardmÙûiges Format um (Kanonisation) und schlieût den Domainteil der Adresse in spitze Klammern ein (Konzentrierung). Die weiter vorne verwendete Umschreibregel ist ein Beispiel för Regelsatz 3.

Nachfolgend einige Beispiele, wie Adressen vom Regelsatz 3 umgesetzt werden:

Originaladresse	Nach der Umsetzung
amm@Rhino.COM	amm<@Rhino.COM>
rhino!amm	amm<@rhino.uucp>

Regelsatz 0 Ð Mail-Programm-Auflðsung

Regelsatz 0 bestimmt, was mit der Mitteilung an eine bestimmte Adresse geschehen soll: Mit welchem Mail-Programm soll die Post weitergeleitet oder zugestellt werden; welcher Host empfÙngt die Mitteilung, wenn sie weitergeleitet werden soll, und welche Adresse soll dem Weiterleitungs- oder Zustellungsmedium gegeben werden. Dieser Prozeû wird Auflðsung der Adresse genannt. Die Ausgabe des Regelsatzes 0 enthÙlt drei Elemente:

·	das Mail-Programm, mit dem die Post weitergeleitet oder zugestellt wird (z. B. ddn);
·	den Host, an den die Mitteilung gesendet werden soll (z. B. Tute.EDU);
·	die Adresse des Benutzers, der die Mitteilung empfangen soll (z. B. amm@Tute.EDU).

Wenn die Post lokal zugestellt werden soll, enthÙlt die Ausgabe keine Daten öber den Host.

Die nÙchste Tabelle zeigt das Resultat, nachdem der Regelsatz 0 auf mehrere Adressen angewandt wurde. In dieser Tabelle wird vorausgesetzt, daû die Adressenauflðsung auf dem Mail-Server durchgeföhrt wird. (Dabei handelt es sich um den Computer, der för die Zustellung lokaler Post und die Weiterleitung entfernter Post zustÙndig ist.) Weiterhin wird vorausgesetzt, daû Post an Computer anderer Anlagen öber das Internet zugestellt wird.

Adresse	Mail- 	Host	Benutzer
	programm
suser	local		suser
suser@rhino	ether	rhino	suser@rhino
suser@Tute.EDU	ddn	Tute.EDU	suser@Tute.EDU
rhino!suser	uucp	rhino	suser
suser@rhino.uucp	uucp	rhino	suser
rhino!conure!suser	uucp	rhino	conure!suser
suser%Rhino.COM@Tute.EDU	ddn	Tute.EDU	suser%Rhino.COM@Tute.EDU

Mðchten Sie zur Weiterleitung von Post, die an Computer anderer Anlagen adressiert ist, ein anderes Mail-Programm verwenden, mössen Sie dieses mit der Anweisung M definieren. Dies wurde weiter vorne beschrieben. Auûerdem sollte das Makro M als Name dieses Mail-Programms definiert werden. Das Makro R sollte als bevorzugter Name des entfernten Weiterleitungs-Computers definiert werden. Die Klasse R sollte den bevorzugten Namen sowie alle Aliase des entfernten Weiterleitungs-Computers enthalten.

Regelsatz D Ð Hinzufögen der Absender-Domain

Der Regelsatz D existiert nicht wirklich, es handelt sich vielmehr um eine integrierte Prozedur, genannt ªHinzufögen der Absender-Domainº. Die Absenderadresse durchlÙuft zunÙchst die Auflðsungssequenz des Mail-Programms (Regelsatz 3, dann Regelsatz 0). Danach pröft sendmail, ob die Mail-Programm-Flagge C för das Mail-Programm vorhanden ist, von dem die Mitteilung erhalten wurde. Ist die Flagge vorhanden, wird der Domainteil der Absenderadresse allen Adressen in der Kopfzeile hinzugefögt, die nicht bereits einen Domainteil haben (die also anscheinend lokale Adressen sind). Damit wird sichergestellt, daû Antworten auf die Mitteilung der richtigen Adresse zugestellt werden. Wenn die Mitteilung zum Beispiel vom Benutzer amm gesendet wird, kðnnte die Funktion ªHinzufögen der Absender-Domainº die Adresse in amm@Rhino.COM umwandeln.

Regelsatz 1 Ð StandardmÙûige Vorverarbeitung der Absenderadresse

Regelsatz 1 ermðglicht die Verarbeitung einer Absenderadresse för die gesamte Anlage. Eine Anlage kðnnte z. B. ein Standardformat för Mail-Adressen integrieren, so daû unabhÙngig vom tatsÙchlichen ªloginº-Namen eines Benutzers die Post dieses Benutzers so erscheint, als kÙme sie von dieser Standardadresse. Eventuell mðchten Sie z. B. einen ªloginº-Namen wie rkabir in Randy_Kabir umwandeln.

Regelsatz 2 Ð StandardmÙûige Vorverarbeitung der EmpfÙngeradresse

Sie kðnnen die EmpfÙngeradresse mit Regelsatz 2 genauso standardmÙûig vorverarbeiten, wie Sie die Absenderadresse mit Regelsatz 1 standardmÙûig vorverarbeiten. Sie kðnnten beispielsweise die Hostnamen för einige Computer Ihres lokalen Netzwerkes umsetzen. Normalerweise ist kaum oder gar keine Vorverarbeitung der EmpfÙngeradressen erforderlich.

Regelsatz 4  Ð Abschlieûende Nachverarbeitung der Adressen

Regelsatz 4 macht die von Regelsatz 3 vorgenommene Umsetzung teilweise wieder röckgÙngig. Die Konzentrierung der Adresse wird ebenfalls röckgÙngig gemacht, indem die spitzen Klammern um den Domainteil gelðscht werden. Beispielsweise kðnnte  amm<@rhino.uucp> wieder in rhino!amm umgewandelt werden.

Informationsdienste

Je nach Systemkonfiguration verwendet sendmail verschiedene Quellen för Daten, die das gesamte Netzwerk betreffen Ð darunter NetInfo, DNS, NIS und einige UNIX-Flachdateien. Die Verwendung hÙngt dabei jeweils von den benðtigten Daten ab.

·	Benutzernamen Ð Wenn sendmail nach einem Benutzernamen sucht, wird zunÙchst NetInfo durchsucht. Wird der Name in NetInfo nicht gefunden und ist NIS aktiviert, wird die entsprechende UNIX-Datei untersucht. Anschlieûend wird die NIS-Tabelle gepröft.

·	Hostnamen Ð ZusÙtzlich zu NetInfo und NIS wird auch DNS nach Hostnamen durchsucht. Sobald der Bestimmungsort einer Mitteilung ermittelt wurde, wird DNS danach durchsucht, ob ein Mail-Vermittler för den Bestimmungs-Computer vorhanden ist. Ein Mail-Vermittler ist ein Computer, der die gesamte Post bearbeitet, die an einen anderen Computer adressiert ist. Die DatensÙtze des Mail-Vermittlers in DNS werden MX-DatensÙtze genannt.

Wird ein MX-Datensatz för den Bestimmungs-Computer gefunden, wird dieser Computer bei der Postöbertragung als Bestimmung verwendet (jedoch nicht in der Kopfzeile der Mitteilung). Die Daten im MX-Datensatz enthalten auch die Adresse des Mail-Vermittlers. Daher erfolgt kein spÙterer Bezug auf NetInfo oder NIS, um die Adresse des Mail-Vermittlers aufzulðsen.

Die Reihenfolge, in der gesucht wird, ist NetInfo, DNS und NIS. Anschlieûend werden in DNS MX-DatensÙtze gesucht.

·	Aliase Ð Aliase werden nur för Mitteilungen umgesetzt, die mit dem Mail-Programm local zugestellt werden. Um ein Alias aufzulðsen, sucht sendmail die Adresse an drei Stellen, und zwar in dieser Reihenfolge: im NetInfo-Verzeichnis /aliases, in der NIS-Tabelle mail.aliases (wenn NIS lÙuft) und in der Datei, die mit der Option A der sendmail-Konfigurationsdatei angegeben wurde (im allgemeinen /etc/sendmail/aliases). Diese beiden letzten Mðglichkeiten werden jedoch nur durchsucht, wenn die Adresse nicht bereits vorher gefunden wurde. Wird die Adresse öberhaupt nicht gefunden, bleibt sie unverÙndert. Beachten Sie, daû dies unabhÙngig von der Mail-Programm-Flagge I gilt.

Nach der Alias-Auflðsung sucht sendmail im Heimverzeichnis des EmpfÙngers nach einer Datei namens .forward. Falls vorhanden, gibt diese Datei an, daû die Post weitergeleitet werden soll: an einen anderen Benutzer (nicht unbedingt lokal), an eine Datei oder an ein Programm. 

In der folgenden Tabelle finden Sie Beispiele för alle mðglichen Variationen der Datei .forward.

Typ	Format	Beispiel
Benutzer	Mail-Adresse	amm@Tute.EDU
Literal user	Escaped address	\amm
Datei	VollstÙndiger Pfad	/Net/rhino/Users/amm/.maillog
Programm	| programm	| "/usr/local/bin/answermail -a"

Wichtig:  Falls eine Datei angegeben wird, muû sie bereits bestehen, damit Post hineingeschrieben werden kann Ð sendmail erstellt keine neuen Dateien.

Wird ein Befehl in einer Datei .forward angegeben, wird er im Spool-Verzeichnis der Mail-Warteschlange so ausgeföhrt, als hÙtte ihn der Mail-EmpfÙnger eingegeben. Das Spool-Verzeichnis der Mail-Warteschlange wird durch die Option Q bestimmt (normalerweise /usr/spool/mqueue). Ist der Befehl ein Shell-Skript, wird .profile oder .cshrc des Benutzers ausgeföhrt. Wird der Befehl zusammen mit Argumenten eingegeben, muû die gesamte Befehlszeile in Anföhrungszeichen stehen, wie im obigen Beispiel.

Mðchten Sie die Post an mehrere EmpfÙnger weiterleiten (z. B. an eine Datei und an ein Programm), geben Sie jeden Eintrag in eine separate Zeile der Datei .forward ein.

	Warnung:	Bei der Weiterleitung versucht sendmail, auf das Heimverzeichnis des EmpfÙngers zuzugreifen. Befindet sich das Heimverzeichnis in einem importierten Dateisystem und ist der Datei-Server nicht verfögbar, muû der Prozeû sendmail eventuell warten, bis der Server wieder verfögbar ist.

Fehlersuche

Bei Problemen mit sendmail kann die Fehlersuche Ùuûerst schwierig und komplex sein. Die Empfehlungen in diesem Abschnitt sollen Ihnen anfÙnglich helfen.

Die Optionen ªmail -vº und ªsendmail -vº 

Zusammen mit der Option -v (verbose, ausföhrlich) eingegeben, zeigt der Berkeley-Befehl mail die sendmail-Dialoge oder -Aktionen an, die wÙhrend der Postöbertragung stattfinden. Nachfolgend finden Sie ein Beispiel dieses Befehls. Dabei erscheinen Benutzereingaben im Fettdruck und Kommentare in einem anderen Schrifttyp.

rhino [~]-175% mail -v rkabir
Post im ausföhrlichen Modus (verbose) an rkabir senden.
Subject: Testing
This is a test.
.
Eingabe einer Mitteilung, die mit einem Punkt auf einer separaten Zeile endet.
Cc: 
Kopien an niemand.
rkabir... Connecting to mailhost via etherl...
Der lokale Computer versucht, Post an rkabir zu senden. Da dieser Computer ein Mail-Client ist, wird die Post an den Mail-Server (mailhost) geschickt. Dazu wird das Mail-Programm etherl verwendet.
Trying 192.42.172.66...  connected.
192.42.172.66 ist die Internet-Adresse des Mail-Servers.
220 cockatoo.Rhino.COM Sendmail NX5.67c/NX3.0M ready at Wed, 15 Jul 92 09:14:18 -0700
Begröûung durch den Mail-Server (cockatoo).
>>> HELO conure.Rhino.COM
250 cockatoo.Rhino.COM Hello conure.rhino.com, pleased to meet you
Die beiden Computer identifizieren sich gegenseitig.
>>> MAIL From:<amm>
250 <amm>... Sender ok
Post vom Benutzer amm wird gesendet; die Absenderadresse wird akzeptiert.
>>> RCPT To:<rkabir>
250 <rkabir>... Recipient ok
Post wird an rkabir gesendet; die EmpfÙngeradresse wird akzeptiert. Falls ein Problem mit dieser Adresse auftritt, wird eine Fehlermeldung ausgedruckt.
>>> DATA
354 Enter mail, end with "." on a line by itself
>>> .
250 Mail accepted
Die Mail-Mitteilung wurde gesendet und empfangen.
>>> QUIT
221 cockatoo.Rhino.COM delivering mail
rkabir... Sent

Sie kðnnen sendmail auch direkt mit der Option ªverboseº aufrufen. Die Ausgabe ist mit der einer Mail-Sitzung im ausföhrlichen Modus identisch. Wenn Sie sendmail direkt ausföhren, mössen Sie alle Kopfzeilen eingeben, die Ihr Postversandprogramm Ihnen zur Verfögung stellt (im allgemeinen From:, To:, Cc: und Subject:). Der Zustellungsversuch erfolgt an die Adressen, die in der Befehlszeile angegeben sind Ð unabhÙngig von den Kopfzeilen.

So verwenden Sie ªsendmailº im Adressentestmodus

Sie kðnnen sendmail im Adressentestmodus ausföhren und so die Verarbeitungsergebnisse einer Adresse durch die verschiedenen RegelsÙtze in der Konfigurationsdatei anzeigen. Im Adressentestmodus kðnnen Sie die RegelsÙtze angeben, die auf eine bestimmte Adresse angewendet werden sollen. RegelsÙtze werden mit Zahlen angegeben und in Regelsatzfolgen durch Kommas voneinander getrennt. Weiterhin mössen die RegelsÙtze durch ein Leerzeichen von der Adresse getrennt werden. Mðchten Sie öberpröfen, wie sendmail eine bestimmte Adresse verarbeitet, geben Sie die Regelsatzfolge ein. Folgen Sie hierzu den Anweisungen weiter vorne in diesem Kapitel unter ªFluû und Anwendung der RegelsÙtzeº. 

Normalerweise wird die Adresse zunÙchst för ein Mail-Programm aufgelðst. Dazu lassen Sie die UmschlagempfÙngeradresse (die Adresse des tatsÙchlichen EmpfÙngers) durch Regelsatz 0 laufen. Die Umschlagadresse kann sich von der Adresse in der Kopfzeile unterscheiden. ErhÙlt z. B. ein EmpfÙnger eine Blindkopie der Mitteilung, erscheint seine Adresse zwar auf dem Umschlag, aber nicht in der Kopfzeile. Normalerweise sind Umschlagadresse und Kopfzeilenadresse eines EmpfÙngers jedoch identisch. 

Nachdem Sie för eine Adresse Regelsatz 0 aufgerufen haben, öberpröfen Sie die Definition des Mail-Programms, das sich daraus ergibt. Bestimmen Sie damit, welche Regelsatzfolge jeweils för die Absender- bzw. die EmpfÙngeradresse zu verwenden ist. Denken Sie daran, daû die Makros S und R einer Mail-Programm-Definition angeben, welche RegelsÙtze auf die Absender- bzw. EmpfÙngeradresse anzuwenden sind.

Hinweis: Wenn Post zugestellt wird, föhrt sendmail normalerweise die Funktion ªHinzufögen der Absender-Domainº aus. Im Adressentestmodus föhrt sendmail diese Funktion jedoch nicht aus. Denken Sie daran, die Absender-Domain selbst allen Adressen hinzuzufögen, die zutreffen, wenn sendmail im Adressentestmodus lÙuft. Einzelheiten finden Sie weiter vorne in diesem Kapitel unter ªRegelsatz D Ð Hinzufögen der Absender-Domainº.

Nachfolgend finden Sie eine Reihe kommentierter Sitzungen mit sendmail im Adressentestmodus, und zwar sowohl auf einem Mail-Client als auch auf einem Mail-Server. In den Beispielen erscheinen Benutzereingaben fettgedruckt und Kommentare in einem anderen Schrifttyp.

Adressentest auf einem Mail-Client

In der ersten Sitzung wird die sendmail-Verarbeitung mit RegelsÙtzen auf einem Mail-Client verfolgt. In diesem Beispiel wird vorausgesetzt, daû Sie Post von einem Computer namens cockatoo in der Domain Rhino.COM versenden. Unter den anderen Computern des lokalen Netzwerkes befinden sich der Mail-Server (mailbox mit dem Alias mailhost) und der Computer conure.

Denken Sie daran, daû Mail-Clients nichts öber die Postzustellung wissen. Sie hÙngen vielmehr för Weiterleitungsdienste vðllig vom Mail-Server ab.

Dies ist die Definition des Mail-Programms etherl aus der Datei sendmail.sharedsubsidiary.cf:

Metherl, P=[TCP], F=msDFuXn, S=12, R=22, A=TCP $h

Lokale Adresse

cockatoo [~]-329% /usr/lib/sendmail -bt
sendmail im Adressentestmodus ausföhren.
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No automatic ruleset 3 call]
Eine Begröûung wird gedruckt. Im Gegensatz zu anderen sendmail-Programmen wird Regelsatz 3 nicht automatisch ausgeföhrt. Auf diese Weise kðnnen Sie einzelne RegelsÙtze ohne BeeintrÙchtigung durch Regelsatz 3 testen.
>3,0 amm
Regelsatz 3 und 0 auf amm anwenden, um die Adresse för ein Mail-Programm aufzulðsen. 
rewrite: ruleset 3 input: "amm"
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 0 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 0 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm"
Regelsatz 3 wird aufgerufen, gemÙû den Anweisungen gefolgt von Regelsatz 0. Regelsatz 0 ruft seinerseits Regelsatz 9 als Subroutine auf. Die Eingabe und die Ausgabe jedes Regelsatzes wird angezeigt. Regelsatz 0 gibt die Werte etherl (Mail-Programm), mailhost (Host, an den die Mitteilung gesendet werden soll) und amm (der Benutzer, der die Post empfangen soll) aus. Die Zeichenfolgen $#, $@ und  $: besagen, daû die darauffolgenden Wðrter sich auf das Mail-Programm, den Host oder den Benutzer beziehen.

> 3,1,12,4 tracy
Die passende Regelsatzfolge auf die Absenderadresse (tracy) anwenden. Die Mail-Programm-Definition etherl gibt för den Absender Regelsatz 12 an (S=12). 
rewrite: ruleset 3 input: "tracy"
rewrite: ruleset 3 returns: "tracy"
Ausföhrung von Regelsatz 3.
rewrite: ruleset 1 input: "tracy"
rewrite: ruleset 1 returns: "tracy"
Regelsatz 1 modifiziert die Adresse nicht.
rewrite: ruleset 12 input: "tracy"
rewrite: ruleset 12 returns: "tracy"
Der för das Mail-Programm spezifische Regelsatz 12 modifiziert die Adresse auch nicht.
rewrite: ruleset 4 input: "tracy"
rewrite: ruleset 9 input: "tracy"
rewrite: ruleset 9 returns: "tracy"
Regelsatz 4 ruft Regelsatz 9 auf.
rewrite: ruleset 4 returns: "tracy"
Die Adressen werden nicht verÙndert.

> 3,2,22,4 amm
Die passende Regelsatzfolge auf die EmpfÙngeradresse (amm) anwenden. Die Mail-Programm-Definition etherl gibt för den EmpfÙnger Regelsatz 22 an (R=22).
rewrite: ruleset 3 input: "amm"
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 2 input: "amm"
rewrite: ruleset 2 returns: "amm"
rewrite: ruleset 22 input: "amm"
rewrite: ruleset 22 returns: "amm"
rewrite: ruleset 4 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 4 returns: "amm"
Wie bei der Absenderadresse waren auch hier keine …nderungen notwendig.

Einfache entfernte Adresse 

Als nÙchstes wird Post untersucht, die an eine entfernte Adresse gesendet wird (amm in der Anlage Tute.EDU). Auch dies ist ein Mail-Client, so daû die sendmail-Konfigurationsdatei die gleiche ist, einschlieûlich der Definition des Mail-Programms etherl.

> 3,0 amm@Tute.EDU
RegelsÙtze 3 und 0 auf die EmpfÙngeradresse anwenden, um sie för ein Mail-Programm aufzulðsen.
rewrite: ruleset 3 input: "amm" "@" "Tute" "." "EDU"
rewrite: ruleset 6 input: "amm" "<" "@" "Tute" "." "EDU" ">"
Regelsatz 3 föhrt Konzentrierung durch, bevor er Regelsatz 6 aufruft.
rewrite: ruleset 6 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 0 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm" "<" "@" "tute" "." "edu" ">"
Die Adresse wird för das Mail-Programm etherl aufgelðst. Die Mitteilung wörde an mailhost gesendet und an amm@tute.edu weitergeleitet.

> 3,1,12,4 tracy
Die passende Regelsatzfolge auf die Absenderadresse anwenden. Erneut wird der för das Mail-Programm spezifische Absender-Regelsatz 12 definiert (R=12).
rewrite: ruleset 3 input: "tracy"
rewrite: ruleset 3 returns: "tracy"
rewrite: ruleset 1 input: "tracy"
rewrite: ruleset 1 returns: "tracy"
rewrite: ruleset 12 input: "tracy"
rewrite: ruleset 12 returns: "tracy"
rewrite: ruleset 4 input: "tracy"
rewrite: ruleset 9 input: "tracy"
rewrite: ruleset 9 returns: "tracy"
rewrite: ruleset 4 returns: "tracy"
Keine …nderungen - die Post wird an den Mail-Server weitergeleitet, wo eventuell …nderungen vorgenommen werden.

> 3,2,22,4 amm@tute.edu
Die Regelsatzfolge auf die EmpfÙngeradresse anwenden. Regelsatz 22 wird in der Definition des Mail-Programms etherl angegeben (R=22).
rewrite: ruleset 3 input: "amm" "@" "tute" "." "edu"
rewrite: ruleset 6 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 2 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 2 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 22 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 22 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 4 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 4 returns: "amm" "@" "tute" "." "edu"
Auch hier wurde die Adresse nicht verÙndert.

Beachten Sie, daû bei Post, die an den Mail-Server gesendet wird, die Adressen der Kopfzeile nie umgeschrieben werden.

UUCP-Adresse mit lokaler Verbindung

Untersuchen Sie nun die Umsetzung der Adresse einer Mitteilung, wenn diese öber UUCP öbertragen wird. Im nachfolgenden Beispiel wird vorausgesetzt, daû der Computer ranger ein UUCP-Partner von cockatoo ist. Nachstehend die Definition des Mail-Programms uucp aus der Datei sendmail.sharedsubsidiary.cf:

Muucp,    P=/usr/bin/uux, F=msDFMhuU, S=13, R=23, E=\n
          A=uux - -r $h!rmail ($u)

> 3,0 ranger!sandy
EmpfÙngeradresse för ein Mail-Programm auflðsen.
rewrite: ruleset 3 input: "ranger" "!" "sandy"
rewrite: ruleset 6 input: "sandy" "<" "@" "ranger" "." "uucp" ">"
Kanonisation und Konzentrierung beendet.
rewrite: ruleset 6 returns: "sandy" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 3 returns: "sandy" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 0 input: "sandy" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 0 returns: "$#" "uucp" "$@" "ranger" " $:" "sandy"
Diese Adresse wird för das Mail-Programm uucp aufgelðst und nicht an mailhost weitergeleitet. Es wird vorausgesetzt, daû auch Mail-Clients ihre eigenen UUCP-Partner haben kðnnen.

> 3,1,13,4 sandy
Die passende Regelsatzfolge auf die Absenderadresse anwenden; das Mail-Programm uucp definiert Regelsatz 13 för Absenderadressen (S=13).)
rewrite: ruleset 3 input: "sandy"
rewrite: ruleset 3 returns: "sandy"
Kanonisation und Konzentrierung durch Regelsatz 3 (keine …nderungen notwendig).
rewrite: ruleset 1 input: "sandy"
rewrite: ruleset 1 returns: "sandy"
Keine …nderungen durch Regelsatz 1.
rewrite: ruleset 13 input: "sandy"
rewrite: ruleset 5 input: "sandy"
Regelsatz 13 ruft Regelsatz 5 auf, der die Umsetzung von UUCP-Adressen durchföhrt.
rewrite: ruleset 5 returns: "sandy"
rewrite: ruleset 13 returns: "cockatoo" "!" "sandy"
Regelsatz 13 hat der Adresse vorne cockatoo! hinzugefögt um anzuzeigen, daû die Absenderadresse in bezug auf den Empfangs-Computer cockatoo!sandy ist.
rewrite: ruleset 4 input: "cockatoo" "!" "sandy"
rewrite: ruleset 9 input: "cockatoo" "!" "sandy"
rewrite: ruleset 9 returns: "cockatoo" "!" "sandy"
rewrite: ruleset 4 returns: "cockatoo" "!" "sandy"
Da es sich von Anfang an um eine lokale Adresse handelte, war eine Konzentrierung nicht notwendig. Daher muû die Konzentrierung auch nicht durch Regelsatz 4 röckgÙngig gemacht werden. Auûerdem hat die Adresse bereits ein kanonisches Format. 

> 3,2,23,4 ranger!amm
Die EmpfÙngeradresse umsetzen; die Definition des Mail-Programms uucp enthÙlt R=23.
rewrite: ruleset 3 input: "ranger" "!" "amm"
rewrite: ruleset 6 input: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "ranger" "." "uucp" ">"
Eine kanonische, konzentrierte Adresse wird zuröckgegeben.
rewrite: ruleset 2 input: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 2 returns: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 23 input: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 5 input: "amm" "<" "@" "ranger" "." "uucp" ">"
rewrite: ruleset 5 returns: "ranger" "!" "amm"
rewrite: ruleset 23 returns: "ranger" "!" "amm"
rewrite: ruleset 4 input: "ranger" "!" "amm"
rewrite: ruleset 9 input: "ranger" "!" "amm"
rewrite: ruleset 9 returns: "ranger" "!" "amm"
rewrite: ruleset 4 returns: "ranger" "!" "amm"
An der Adresse sind keine weiteren …nderungen notwendig.

Entfernte Adresse im lokalen Netzwerk

Im folgenden Beispiel wird untersucht, was passiert, wenn in einem lokalen Netzwerk die Post direkt an einen Computer gesendet wird Ð und nicht an den Mail-Server. Es folgt die Definition des Mail-Programms etherl aus der Datei sendmail.sharedsubsidiary.cf:

Metherl, P=[TCP], F=msDFuXn, S=12, R=22, A=TCP $h

> 3,0 amm@cockatoo
rewrite: ruleset 3 input: "amm" "@" "cockatoo"
rewrite: ruleset 6 input: "amm" "<" "@" "cockatoo" ">"
Auf Hostteil konzentrieren.
rewrite: ruleset 6 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
Kanonisch umsetzen: die Adresse als lokal angeben.
rewrite: ruleset 3 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 30 input: "amm"
Regelsatz 30 ruft einfach Regelsatz 3 und danach Regelsatz 0 auf. In dieser lokalen Adresse sind öberflössige Leitwegdaten, dies wird von Regelsatz 0 bearbeitet. Da Sie sich in einem Netzwerk befinden und einen Mail-Server gemeinsam nutzen, wird vorausgesetzt, daû die gesamte Post an lokale Adressen an den Mail-Server gesendet wird. Andere Leitwegbestimmungen sind in einem lokalen Netzwerk öberflössig.
rewrite: ruleset 3 input: "amm"
Adressenauflðsung neu beginnen, jetzt mit einer lokalen Adresse.
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 0 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 0 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm"
rewrite: ruleset 30 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm"
rewrite: ruleset 0 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm"
För das Mail-Programm etherl aufgelðst.

Wenn Sie die passenden RegelsÙtze auf die Kopfzeilenadressen anwenden, stellen Sie fest, daû keine …nderungen vorgenommen wurden Ð wie bei den anderen Beispielen, in denen die Adresse aufgelðst wurde, um das Mail-Programm etherl zu verwenden.

Im folgenden Beispiel sehen Sie, was passiert, wenn die Post för einen Benutzer spezifisch an den Mail-Server adressiert wird:

> 3,0 amm@mailhost
rewrite: ruleset 3 input: "amm" "@" "mailhost"
rewrite: ruleset 6 input: "amm" "<" "@" "mailhost" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "LOCAL" ">"
Regelsatz 6 entdeckt, daû mailhost ein Alias för den lokalen Mail-Server ist, und zeigt an, daû es sich im eine lokale Adresse handelt.
rewrite: ruleset 3 returns: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "rhino" "." "com" ">"
Regelsatz 0 wandelt LOCAL in rhino.com um - die Domain dieses Computers - und ruft dann Regelsatz 9 auf.
rewrite: ruleset 9 returns: "amm" "<" "@" "rhino" "." "com" ">"
rewrite: ruleset 0 returns: "$#" "etherl" "$@" "mailhost" " $:" "amm" "<" "@" "rhino" "." "com" ">"
Die Post geht erwartungsgemÙû an den Mail-Server. Die Umschlagadresse lautet jedoch amm@rhino.com. Sie kðnnen voraussetzen, daû der Mail-Server eine solche Adresse als lokale Adresse erkennt.

An den Kopfzeilenadressen erkennen Sie, daû die Absenderadresse unverÙndert ist, die EmpfÙngeradresse jedoch modifiziert wurde.

> 3,2,22,4 amm@mailhost
Regelsatzfolge auf EmpfÙngeradresse anwenden.
rewrite: ruleset 3 input: "amm" "@" "mailhost"
rewrite: ruleset 6 input: "amm" "<" "@" "mailhost" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "LOCAL" ">"
Die Adresse ist jetzt konzentriert und kanonisch umgesetzt.
rewrite: ruleset 2 input: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 2 returns: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 22 input: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 22 returns: "amm"
Der för das Mail-Programm spezifische Regelsatz 22 setzt in diesem Fall amm@LOCAL in amm um. Dadurch erscheint die Kopfzeilenadresse wie eine lokale Adresse.
rewrite: ruleset 4 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 4 returns: "amm"

Adressentest auf einem Mail-Server

Sie haben gesehen, was mit den Mitteilungen und Adressen auf einem Mail-Client passiert. Nachfolgend kðnnen Sie untersuchen, was mit Ùhnlichen Adressen auf einem Mail-Server geschieht. Im Beispiel wird davon ausgegangen, daû der Server an das Internet angeschlossen ist und eine Doppelfunktion hat: Er ist sowohl der lokale Mail-Server als auch der Internet-Mail-Gateway. Der Name des Mail-Clients ist wieder cockatoo, der Name des Mail-Servers ist mailbox.

Nachfolgend die Definition des Mail-Programms local aus der Datei sendmail.mailhost.cf:

Mlocal,    P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail -d $u

Lokale Adresse

mailbox [~]-20% /usr/lib/sendmail -bt
ADDRESS TEST MODE
Enter <ruleset> <address>
[Note: No automatic ruleset 3 call]
> 3,0 amm
rewrite: ruleset 3 input: "amm"
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 0 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 0 returns: "$#" "local" " $:" "amm"
Die Adresse wird för das Mail-Programm local aufgelðst.

> 3,1,10,4 tracy
Das Mail-Programm local definiert seinen Absender-Regelsatz (S=) als 10.
rewrite: ruleset 3 input: "tracy"
rewrite: ruleset 3 returns: "tracy"
rewrite: ruleset 1 input: "tracy"
rewrite: ruleset 1 returns: "tracy"
rewrite: ruleset 10 input: "tracy"
rewrite: ruleset 10 returns: "tracy"
rewrite: ruleset 4 input: "tracy"
rewrite: ruleset 9 input: "tracy"
rewrite: ruleset 9 returns: "tracy"
rewrite: ruleset 4 returns: "tracy"

> 3,2,20,4 amm
Das Mail-Programm local definiert seinen EmpfÙnger-Regelsatz (R=) als 20.
rewrite: ruleset 3 input: "amm"
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 2 input: "amm"
rewrite: ruleset 2 returns: "amm"
rewrite: ruleset 20 input: "amm"
rewrite: ruleset 20 returns: "amm"
rewrite: ruleset 4 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 4 returns: "amm"
ErwartungsgemÙû wurden weder die Absenderadresse noch die EmpfÙngeradresse verÙndert. 

Einfache entfernte Adresse

Im folgenden Beispiel wird Post an einen entfernten Computer geschickt. Die Absenderadresse ist amm, diesmal in Tute.EDU. Nachfolgend die Definition des Mail-Programms ddn aus der Datei sendmail.mailhost.cf:

Mddn,    P=[TCP], F=msDFMuCX, S=22, R=22, A=TCP $h, E=\r\n

> 3,0 amm@Tute.EDU
rewrite: ruleset 3 input: "amm" "@" "Tute" "." "EDU"
rewrite: ruleset 6 input: "amm" "<" "@" "Tute" "." "EDU" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 0 returns: "$#" "ddn" "$@" "tute" "." "edu" "$:" "amm" "<" "@" "tute" "." "edu" ">"
Die Adresse wird för das Mail-Programm ddn aufgelðst.
> 3,1,22,4 tracy
Das Mail-Programm ddn definiert seinen Absender-Regelsatz als 22.
rewrite: ruleset 3 input: "tracy"
rewrite: ruleset 3 returns: "tracy"
rewrite: ruleset 1 input: "tracy"
rewrite: ruleset 1 returns: "tracy"
Wörde Regelsatz 1 hier eine Umsetzung in eine standardmÙûige (kanonische) Mail-Adresse wie etwa Tracy_Roykirk vornehmen, wÙre die Ausgabe hier statt dessen tracy_roykirk.
rewrite: ruleset 22 input: "tracy"
rewrite: ruleset 22 returns: "tracy" "<" "@" "mailbox" "." "rhino" "." "com" ">"
Regelsatz 22 fögt den voll qualifizierten Hostnamen hinzu. Er föhrt auûerdem die gerade erwÙhnte standardmÙûige (kanonische) Umsetzung durch. (Weitere Einzelheiten enthÙlt sendmail.mailhost.cf). In diesem Fall wird davon ausgegangen, daû eine standardmÙûige Umsetzung nur bei Mitteilungen vorgenommen wird, die an entfernte Computer gesendet werden. Sie brauchen den Hostnamen des Mail-Servers nicht unbedingt mit anzugeben und kðnnen nur rhino.com als Röckanlage verwenden. (Dabei mössen Sie sich jedoch vergewissern, daû rhino.com vom externen Netzwerk als mailbox.rhino.com verstanden wird.)
rewrite: ruleset 4 input: "tracy" "<" "@" "mailbox" "." "rhino" "." "com" ">"
rewrite: ruleset 9 input: "tracy" "<" "@" "mailbox" "." "rhino" "." "com" ">"
rewrite: ruleset 9 returns: "tracy" "<" "@" "mailbox" "." "rhino" "." "com" ">"
rewrite: ruleset 4 returns: "tracy" "@" "mailbox" "." "rhino" "." "com"

> 3,2,22,4 amm@Tute.EDU
Das Mail-Programm ddn definiert seinen EmpfÙnger-Regelsatz als 22, genau wie den Absender-Regelsatz.
rewrite: ruleset 3 input: "amm" "@" "Tute" "." "EDU"
rewrite: ruleset 6 input: "amm" "<" "@" "Tute" "." "EDU" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 2 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 2 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 22 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 22 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 4 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 9 returns: "amm" "<" "@" "tute" "." "edu" ">"
rewrite: ruleset 4 returns: "amm" "@" "tute" "." "edu"
Die EmpfÙnger-Adresse wurde nicht verÙndert.

Entfernte Adresse im lokalen Netzwerk

Auf einem Mail-Server ist die Sache nicht ganz so einfach, auch mit einfachen entfernten Adressen. In folgenden Beispielen wird die Post ausdröcklich an den Mail-Server gesendet (vom Mail-Server) und danach ausdröcklich an einen anderen lokalen Host. Es folgt die Definition des Mail-Programms etherl aus der Datei sendmail.mailhost.cf:

Mether,    P=[TCP], F=msDFMuCX, S=11, R=21, A=TCP $h

> 3,0 amm@mailhost
Den Host-Alias mailhost und nicht ausdröcklich den Hostnamen des Mail-Servers verwenden. Beide haben die gleiche Wirkung.
rewrite: ruleset 3 input: "amm" "@" "mailhost"
rewrite: ruleset 6 input: "amm" "<" "@" "mailhost" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "LOCAL" ">"
rewrite: ruleset 30 input: "amm"
rewrite: ruleset 3 input: "amm"
rewrite: ruleset 3 returns: "amm"
rewrite: ruleset 0 input: "amm"
rewrite: ruleset 9 input: "amm"
rewrite: ruleset 9 returns: "amm"
rewrite: ruleset 0 returns: "$#" "local" " $:" "amm"
rewrite: ruleset 30 returns: "$#" "local" " $:" "amm"
rewrite: ruleset 0 returns: "$#" "local" " $:" "amm"
sendmail erkennt, daû mailhost ein Name des aktuellen Computers ist. Die Spezifikation @mailhost wird gelðscht, und RegelsÙtze 3 und 0 werden nochmals auf die Adresse angewendet. Danach wird die Adresse för das lokale Mail-Programm aufgelðst.
> 3,0 amm@cockatoo
EmpfÙngeradresse ausdröcklich an einen anderen Host im Netzwerk.
rewrite: ruleset 3 input: "amm" "@" "cockatoo"
rewrite: ruleset 6 input: "amm" "<" "@" "cockatoo" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 3 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 0 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 0 returns: "$#" "ether" "$@" "cockatoo" " $:" "amm" "<" "@" "cockatoo" ">"
Die Post wird mit dem Mail-Programm ether an cockatoo gesendet.

> 3,1,11,4 tracy
Das Mail-Programm ether definiert den Absender-Regelsatz als 11.
rewrite: ruleset 3 input: "tracy"
rewrite: ruleset 3 returns: "tracy"
rewrite: ruleset 1 input: "tracy"
rewrite: ruleset 1 returns: "tracy"
rewrite: ruleset 11 input: "tracy"
rewrite: ruleset 11 returns: "tracy" "<" "@" "mailbox" ">"
Regelsatz 11 fögt den Hostnamen dieses Computers hinzu.
rewrite: ruleset 4 input: "tracy" "<" "@" "femail" ">"
rewrite: ruleset 9 input: "tracy" "<" "@" "femail" ">"
rewrite: ruleset 9 returns: "tracy" "<" "@" "femail" ">"
rewrite: ruleset 4 returns: "tracy" "@" "femail"
Da Sie ausdröcklich einen Hostnamen in der Adresse der Mitteilung verwendet haben, sollte die Röckadresse (die des Absenders) den ausdröcklichen Hostnamen des Absender-Computers enthalten.

> 3,2,21,4 amm@cockatoo
Regelsatz 21 wird in der Definition des Mail-Programms ether als Regelsatz der EmpfÙngeradresse angegeben.
rewrite: ruleset 3 input: "amm" "@" "cockatoo"
rewrite: ruleset 6 input: "amm" "<" "@" "cockatoo" ">"
rewrite: ruleset 6 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
Bekannter Computer im lokalen Netzwerk erkannt, .LOCAL angefögt.
rewrite: ruleset 3 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 2 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 2 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 21 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 21 returns: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 4 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 9 input: "amm" "<" "@" "cockatoo" "." "LOCAL" ">"
rewrite: ruleset 9 returns: "amm" "<" "@" "cockatoo" "." "rhino" "." "com" ">"
Regelsatz 9 wandelt die Pseudo-Domain LOCAL in die echte Domain um.
rewrite: ruleset 4 returns: "amm" "@" "cockatoo" "." "rhino" "." "com"

Konfigurationsdateien auf NeXT-Computern

NeXT-Computer werden mit drei verschiedenen sendmail-Konfigurationsdateien geliefert. Jede dient spezifischen Verwendungszwecken:

·	sendmail.subsidiary.cf Ð Wird bei Computern verwendet, die Post lokal in einem Spool-Speicher aufbewahren, aber keine kompletten Mail-Leitwegdaten haben. Der Computer ist weder Mail-Client noch Mail-Server. Dies ist die voreingestellte Konfigurationsdatei.

·	sendmail.mailhost.cf Ð Wird auf Mail-Servern verwendet.

·	sendmail.sharedsubsidiary.cf Ð Diese Datei wird auf Client-Computern verwendet, die das Spool-Verzeichnis von einem Server importieren.

Makros

In der folgenden Tabelle wird beschrieben, wie Makros definiert und in der standardmÙûigen sendmail-Konfigurationsdatei auf NeXT-Computern verwendet werden. 

Makro	Verwendung	Definition	Verwendung 
			bei
M	Relais-Mail-Programm	uucp	mailhost
		ether	subsidiary
		etherl	sharedsubsidiary

R	Relais	hostmail-relay	mailhost
		mailhost	subsidiary
		mailhost	sharedsubsidiary

V	Version der 
	Konfigurationsdatei 	NX3.0M	mailhost
		NX3.0S	subsidiary
		NX3.0X	sharedsubsidiary

Z	Kanonische Adreûtabelle	mail.byaddr	mailhost

e	SMTP-Begröûung	$j Sendmail $v/$V ready at $b	alle

j	Hostname	$?m $w.$m $| $w $.	alle

l	Format för Kopfzeile 
	ªFromº	From $g $d	alle

n	Medium des Mail-Programms	Mailer-Agent	alle

o	Operatoren in Adressen	.:%@!^=/[]	alle

q	Absenderadresse	Dq$?x$x $.<$g>	alle

Einige dieser Makros werden in allen Konfigurationsdateien in der gleichen Weise definiert; andere werden in jeder Datei unterschiedlich definiert und wieder andere werden öberhaupt nur in bestimmten Dateien definiert.

Mit dem Makro Z wird der Name einer NIS-Tabelle för ªumgekehrte Aliasumsetzungº angezeigt. Angenommen, ein Benutzer mit dem ªloginº-Namen rkabir sendet Post. In diesem Fall enthÙlt die NIS-Tabelle, auf die das Makro Z verweist, einen Eintrag, mit dem rkabir in einen anderen Namen umgesetzt wird Ð wie etwa Randy_Kabir. Wenn NIS nicht lÙuft oder wenn die Bezugstabelle nicht definiert wurde, erfolgt keine Umsetzung (und kein Fehler). 

Mit dem Makro o werden die Operatoren definiert, die in Adressen verwendet werden. Die Operatoren trennen Zeichenfolgen voneinander.

Tip:  Falls Sie Ihre Konfigurationsdatei Ùndern, sollten Sie gleichzeitig eine kleine …nderung an der Definition des Makros V vornehmen und so angeben, daû die Datei verÙndert wurde. Auf diese Weise kðnnen die …nderungen von Ihnen verfolgt und von anderen Benutzern einfacher erkannt werden.

In der folgenden Tabelle werden Musterwerte för solche Makros beschrieben, die durch andere Makros definiert werden.

Makro	Musterwert
e	rhino.Tute.EDU Sendmail NX5.67c/NX3.0X ready atWed, 15 Jul 92 14:03:06 -0700

j	rhino.Tute.EDU 

l	From amm Fri Jan 3 13:54:40 1992

q	amm

Klassen

In der folgenden Tabelle werden die Klassen beschrieben, die in den Konfigurationsdateien definiert werden. Beachten Sie, daû eine Klasse zwar den gleichen Namen wie ein Makro haben kann, Makros und Klassen aber vðllig unterschiedliche Werte haben und auch auf verschiedene Weise verwendet werden. Eine Konfigurationsdatei wird jedoch wesentlich verstÙndlicher, wenn Makros und Klassen mit dem gleichen Namen auch in Ùhnlicher Weise verwendet werden. 

Klasse	Verwendung	Definition	Verwendung
			bei
R	Relais-Host	mail-relay	mailhost
		mailhost	subsidiary
		mailhost	sharedsubsidiary
V	UUCP-Partner	Ausgabe von /usr/bin/uuname	alle

Beachten Sie, daû die Klasse R mit dem gleichen Wert wie das Makro R definiert wurde. Beide speichern den Namen (oder die Namen, im Fall der Klasse) des Mail-Relais-Hosts. Die Klasse R definiert alle Namen des Relais-Hosts, einschlieûlich der Aliase. Dagegen definiert das Makro R den bevorzugten Namen des Relais-Hosts. Beide werden benðtigt, da sie verschieden verwendet werden. In den Klassen werden gleichwertige Elemente aufgelistet, wÙhrend die Makros Variablen sind, die för einfache Substitutionen verwendet werden.

Mit der Klasse R kðnnen Sie feststellen, ob ein Host mit dem Relais-Host ªÙquivalentº ist. Dazu verwenden Sie das Metasymbol $= in der linken Seite einer Regel. Ist der Host Ùquivalent, wollen Sie die Post vielleicht anders verarbeiten. (Beachten Sie, daû die Klasse R zwar definiert ist, aber nicht in den voreingestellten Konfigurationsdateien verwendet wird.)

Adressenauflðsung

Mail-Adressen kðnnen rein lokale Adressen sein (z. B. benutzer). Sie kðnnen aber auch ausdröcklich einen anderen lokalen Host (z. B. benutzer@host) angeben oder einen entfernten Host betreffen (etwa benutzer@host.domain). In der folgenden Tabelle wird angezeigt, wie die verschiedenen Adressen för jede der drei Konfigurationsdateien aufgelðst werden.

Adresse	mailhost	subsidiary	sharedsubsidiary
user	local	local	etherl an mailhost
user@host	ether	ether	etherl an mailhost
user@host.domain	ddn	ether an mailhost	ether an mailhost

Sehen Sie sich die Zeile för benutzer@host.domain an. Wird diese Adresse auf dem Mail-Server aufgelðst (mit sendmail.mailhost.cf), wird das Mail-Programm ddn verwendet. Wird die Adresse auf einem Computer aufgelðst, der sendmail.subsidiary.cf verwendet, wird sie mit dem Mail-Programm ether an den Computer mailhost weitergeleitet. Sie wird auch mit dem Mail-Programm ether an mailhost gesendet, wenn sie auf einem Mail-Client mit sendmail.sharedsubsidiary.cf aufgelðst wird.

RegelsÙtze

In den Konfigurationsdateien eines NeXT-Computers werden die verschiedenen RegelsÙtze einheitlich verwendet. Der Regelsatz 5 in sendmail.mailhost.cf dient dem gleichen Zweck wie der Regelsatz 5 in sendmail.sharedsubsidiary.cf. In den folgenden drei Tabellen wird die Verwendung der verschiedenen RegelsÙtze zusammengefaût. Die RegelsÙtze sind in drei Gruppen unterteilt: standardmÙûige RegelsÙtze, nicht-standardmÙûige RegelsÙtze, die auch keine för Mail-Programme spezifischen UmschreibregelsÙtze sind, und schlieûlich die för Mail-Programme spezifischen UmschreibregelsÙtze. Die folgende Tabelle beschreibt die standardmÙûigen RegelsÙtze.

Regelsatz	Zweck
	0	Mail-Programm-Auflðsung
	1	StandardmÙûige Vorverarbeitung der Absender-Kopfzeilenadresse
	2	StandardmÙûige Vorverarbeitung der EmpfÙnger-Kopfzeilenadresse
	3	Kanonisation und Konzentrierung
	4	StandardmÙûige Nachverarbeitung der Kopfzeilenadresse

Die folgende Tabelle zeigt nicht-standardmÙûige RegelsÙtze, die von keinem Mail-Programm verwendet werden, um Adressen umzuschreiben. Diese RegelsÙtze werden normalerweise von anderen RegelsÙtzen för hÙufig durchgeföhrte Operationen aufgerufen.

Regelsatz	Zweck
	5	Konvertiert benutzer@host.uucp in host!benutzer
	6	Integration verschiedener lokaler Konventionen
	9	AdressensÙuberung, bevor die Adressen an ein Mail-Programm
		weitergegeben werden
	30	Föhrt Regelsatz 3 gefolgt von Regelsatz 0 aus

In der nÙchsten Tabelle werden die för ein Mail-Programm spezifischen UmschreibregelsÙtze zusammengefaût. Regelsatz 12 wird nur von Mail-Clients und Regelsatz 22 nur von Mail-Servern und Mail-Clients verwendet (und nicht in sendmail.subsidiary.cf).

Regelsatz	Zweck
	10	Umschreibregelsatz för Absenderadressen der Mail-Programme local 
		und prog	

	20	Umschreibregelsatz för EmpfÙngeradressen der Mail-Programme 
		local und prog

	11	Umschreibregelsatz för Absenderadressen des Mail-Programms ether

	21	Umschreibregelsatz för EmpfÙngeradressen des Mail-Programms ether

	12	Umschreibregelsatz för Absenderadressen des Mail-Programms etherl

	22	Umschreibregelsatz för EmpfÙngeradressen des Mail-Programms etherl
		(Mail-Client)
		Umschreibregelsatz för Absender- und EmpfÙngeradressen des
 		Mail-Programms ddn (Mail-Server)

	13	Umschreibregelsatz för Absenderadressen des Mail-Programms uucp

	23	Umschreibregelsatz för EmpfÙngeradressen des Mail-Programms uucp

Branchenkniffe

Eine derartig massive Herausforderung wie die Unterstötzung von sendmail ist nichts för zaghafte Gemöter. In diesem Abschnitt finden Sie einige grundlegende Empfehlungen för eine erfolgreiche Anwendung von sendmail.

Allgemeine RatschlÙge

·	Wenden Sie sich an einen erfahrenen Berater, der Ihnen dabei hilft, sich mit sendmail vertraut zu machen. Ihre Kontaktperson sollte sich gut mit sendmail auskennen und gerne auf alle Ihre Fragen antworten.

·	För diejenigen, die mehr in die Tiefe gehen mðchten, ist eventuell Quellcode öber anonymes FTP verfögbar Ð beispielsweise von uunet.uu.net (in /mail/sendmail).

	Warnung:	Allgemeine sendmail-Quellcodes, die in den Archiven verfögbar sind, kðnnen in dieser Form hðchstwahrscheinlich nicht auf NeXT-Computern verwendet werden. Verschiedene NeXT-spezifische Modifikationen wurden vorgenommen Ð insbesondere zur Unterstötzung von NetInfo. 

·	Vielleicht finden Sie auch manchen hilfreichen Beitrag in den Diskussionen der UseNet-Nachrichtengruppe comp.mail.sendmail. Auûerdem kðnnen andere Leser vielleicht auf Ihre Fragen antworten und Ihnen helfen.

Kniffe beim Betrieb

Es gibt drei wichtige Kniffe, die Ihnen in bestimmten Betriebssituationen helfen kðnnen.

Post för Aliase einschlieûlich des Absenders

Wenn ein Benutzer Post an einen Mail-Alias schickt, in dem nach der Auflðsung der Account-Name des Absenders enthalten ist, erhÙlt der Absender normalerweise keine Kopie der Mitteilung. Wenn in der sendmail-Konfigurationsdatei jedoch die Option m enthalten ist, erhÙlt der Absender in diesem Fall eine Kopie seiner Mitteilung. Beachten Sie, daû die Einstellungen einer sendmail-Konfigurationsdatei auf dem Mail-Client nicht ausschlaggebend sind. Ausschlaggebend sind die Einstellungen in der Konfigurationsdatei des Mail-Servers. Sie bestimmen, ob der Absender eine Kopie der Mail-Mitteilung erhÙlt.

Einfögen von ªrealnameº in die Adresse ªFrom:º

Mit der Definition des Makros q in der Konfigurationsdatei des Absenders wird festgelegt, welches Format die Adresse From: in der Kopfzeile hat. Die Definition in sendmail.sharedsubsidiary.cf schlieût das Feld realname nicht ein. Wenn Sie mðchten, daû dieses Feld in die Adresse From: mit eingeschlossen wird, mössen Sie die Definition wie folgt Ùndern:

Dq$?x$x$.<$g>

Mit dieser Definition hat die Röckadresse etwa folgendes Format:

troykirk (Tracy Q. Roykirk)

Post för unbekannte Domains

Wie weiter vorne erlÙutert, definieren das Makro M, die Klasse R und das Makro R das Relais-Mail-Programm und den Relais-Computer. In der Konfigurationsdatei sendmail.mailhost.cf werden sie als uucp, mail-relay und mail-relay definiert. In der Voreinstellung werden diese Werte nicht verwendet. Statt dessen wird Post för unbekannte Domains an das Mail-Programm ddn gesendet, also direkt an die unbekannte Domain. Wenn Ihr Mail-Server nicht mit dieser Domain verbunden ist, wird die Mitteilung als unzustellbar zuröckgesendet.

Soll die Post för unbekannte Domains anders behandelt werden, mössen Sie das Makro M, die Klasse R und das Makro R in sendmail.mailhost.cf mit den entsprechenden Werten definieren. Anschlieûend modifizieren Sie in derselben Datei Regelsatz 0. Die Zeilen, die geÙndert werden mössen, beginnen bei Version NX3.0M mit Zeile 338:

# If you want to pass all other explicit domain names up the ladder
# to our forwarder then uncomment the following line.# 
#R$*<@$*.$+>$*   $#$M $@$R  $:$1<@$2.$3>$4  user@any.domain
# and comment out this one.# 
R$*<@$+.$->$*    $#ddn $@ $2.$3 $:$1<@$2.$3>$4    user@any.domain

Nehmen Sie die …nderungen vor, die in den Kommentaren beschrieben werden. Das Ergebnis sieht so aus:

# If you want to pass all other explicit domain names up the ladder# # to our forwarder then uncomment the following line.# 
R$*<@$*.$+>$*    $#$M    $@$R $:$1<@$2.$3>$4    user@any.domain
# and comment out this one.# 
#R$*<@$+.$->$*    $#ddn $@ $2.$3 $:$1<@$2.$3>$4    user@any.domain

Kniffe bei der Fehlersuche

Wenn Sie bei einem Konfigurationsproblem mit sendmail einen Debuglauf durchföhren, mðchten Sie eventuell die Werte verschiedener Makros untersuchen. So kðnnen Sie die Art und Weise der Definition genau bestimmen. Sie kðnnen Ihren Konfigurationsdateien zu diesem Zweck neue EintrÙge hinzufögen. 

So fögen Sie einen Regelsatz hinzu, um Makros zu untersuchen

In der folgenden Definition des Regelsatzes 16 wird das Mail-Programm error verwendet, um die Werte der Makros j und m anzuzeigen.

S16
R$*    $#error $:j=$j, m=$m

Föhren Sie sendmail im Adressentestmodus aus und rufen Sie Regelsatz 16 auf:

> 16 test
rewrite: ruleset 16   input: "test"
rewrite: ruleset 16 returns: "$#" "error" " $:" "j" "=" "cockatoo" "." "rhino" "." "com" "," "m" "=" "rhino" "." "com"

Normalerweise wird das Mail-Programm error nur im Regelsatz 0 aufgerufen. In diesem Fall bietet es jedoch einen einfachen Mechanismus, mit dem Meldungen gedruckt werden. Das Makro j hat den Wert cockatoo.rhino.com, und das Makro m hat als Wert rhino.com.

So fögen Sie Kopfzeilen hinzu, um Makros zu untersuchen

Einige Makros enthalten keine sinnvollen Werte, wenn die Mitteilung noch nicht verarbeitet wurde. Dazu zÙhlen etwa u (die EmpfÙngeradresse) oder q (das Format einer Absenderadresse). Diese Makros kðnnen Sie mit keinem Regelsatz untersuchen. Statt dessen kðnnen Sie die Kopfzeilen modifizieren, um diese Werte anzuzeigen.

Fögen Sie den Kopfzeilendefinitionen die folgenden Zeilen hinzu:

HX-Test1: j=$j, m=$m
HX-Test2: u=$u, q=$q

Wenn vor dem Namen einer nicht-standardmÙûigen Kopfzeile X- steht, entspricht dies den allgemeinen Konventionen öber Mail-Kopfzeilen. Auûerdem entspricht Ihre Mitteilung auf diese Weise allen anderen wichtigen Normen.

Senden Sie sich selbst eine kurze Test-Mitteilung. Es erscheinen die beiden folgenden zusÙtzliche Kopfzeilen:

X-Test1: j= cockatoo.rhino.com, m=rhino.com
X-Test2: u=tr, q=<tracy>

Die Mitteilung wurde vom Benutzer tracy an den Alias tr gesendet. 

So zeigen Sie alle Kopfzeilen an

Die Anwendung ªNeXTmailº zeigt in einer Mitteilung nur einige der Kopfzeilen an. Wenn die gewönschten Kopfzeilen im Mitteilungsfenster nicht angezeigt werden, gehen Sie folgendermaûen vor, um alle Kopfzeilen der Mitteilung aufzulisten:

1.	Klicken Sie im Briefkasten-Fenster auf den Kopf der Mitteilung.

2.	Kopieren Sie die Mitteilung mit ªCommand-cº, ohne jedoch in den Mitteilungsbereich zu klicken.

3.	Fögen Sie die Mitteilung beispielsweise in ein neues Fenster der Anwendung ªEditº ein.

Falls die Mitteilung ein reiner ASCII-Text ist, erscheint sie vollstÙndig im Fenster der Anwendung ªEditº. EnthÙlt die Mitteilung dagegen Text im RTF-Format, eine Anlage, eine Sprachaufzeichnung oder ein Bild, sehen Sie nur die Kopfzeilen.

Es folgt ein Beispiel mit allen Kopfzeilen einer Mitteilung, die von Tracy Roykirk vom Computer cockatoo aus gesendet wurde. Die Mitteilung wurde an mailbox weitergeleitet und von dort dem Benutzer amm zugestellt.

From Tracy_Roykirk Wed Jul 15 13:57:41 1992
Next-Reference: Testing.attach, 1/1
Return-Path: <Tracy_Roykirk>
Received: from  cockatoo.rhino.com  (cockatoo) by mailbox.Rhino.COM (NX5.67c/NX3.0M)
    id AA00320; Wed, 15 Jul 92 13:57:35 -0700
From: Tracy_Roykirk (Tracy Q. Roykirk - SysAdmin)
Message-Id: <9112270031.AA00320@mailbox.Rhino.COM>
Received: by  cockatoo.rhino.com  (NX5.67c/NX3.0X)
    id AA00937; Wed, 15 Jul 92 13:57:30 -0700
Date: Wed, 15 Jul 92 13:57:35 -0700
Received: by NeXT Mailer (1.85)
Received: by NeXT Mailer (1.85)
To: amm
Subject: Testing